[UPDATE] AWS Elemental MediaLiveで個々のOutputごとに画像のオーバーレイが可能になりました!

[UPDATE] AWS Elemental MediaLiveで個々のOutputごとに画像のオーバーレイが可能になりました!

MediaLiveの画像オーバーレイ、これまではChannel内のすべてのOutput groupsが対象でしたが、Outputごと個別に設定ができるようになりました。Feature activationsの有効化を忘れないようにしましょう。
Clock Icon2023.12.29

はじめに

清水です。本エントリでお届けするAWS Media Servicesアップデート情報はこちら!ブロードキャストグレードのライブ動画処理サービスであるAWS Elemental MediaLiveで個々のOutputごとに画像のオーバーレイができるようになりました。(2023/12/05付でAWS What's Newにポストされたアップデート情報となります。)

MediaLiveではこれまでも画像のオーバーレイ自体は可能だったのですが、そのChannelに設定されているOutput groupsのすべてがオーバレイの対象となっていました。特定のOutput groupsには画像オーバレイを適用しない、といったことができなかったわけですね。今回のアップデートでは、個々のOutputごとに画像のオーバーレイが設定できるようになりました。特定のOuptput groupに画像オーバーレイを設定する、という使い方もできるようになったほか、解像度・ビットレートの異なるOutputそれぞれに個別の画像オーバーレイを設定することができるようになっています!

本エントリでは、このOutputごとの画像オーバーレイ機能を実際に試してみたのでまとめてみたいと思います。

MediaLiveでOutputごとに画像オーバーレイを設定してみた

オーバーレイ用の画像の準備

まずは検証用にオーバーレイ用の画像を準備しました。3つのOutputからなるABR ladderを想定し、それぞれのVideo renditionに個別の画像オーバーレイを設定します。ABR ladderは1080p720p480pの3つのrenditionとしました。オーバーレイする画像のサイズはいずれも100x56です。あらかじめS3バケットにアップロード、MediaLiveからアクセスできるようにしておきます。

  • 1080p
    • blue.png
  • 720p
    • green.png
  • 480p
    • red.png

Workflow wizardでMediaLiveと関連リソースの作成

続いて動作検証に必要なMediaLiveと関連リソースをWorkflow wizardを使って作成していきます。マネジメントコンソールの[Create workflow]ボタンから進みます。Add video outputsの項目で出力先にMediaPackageを選択、今回の検証のポイントとして、以下のように1080p30720p30480p30の3つのVideo renditionを設定しました。

「Review and create resources」の画面だと以下のようになります。[Create workflow resources]ボタンでMediaLiveと関連リソースの作成を行います。

Channelリソースで画像オーバーレイの有効化

WorkflowがCreate completeになり関連リソースの作成が完了たら、続いてはMediaLiveのChannelリソースでOutputごとの画像オーバレイを有効化する設定を行います。[Edit channel]ボタンから進みましょう。

General channel settingsの項目、Feature Activationsを確認します。Workflowから作成した手順では、デフォルトで以下のように「無効」の状態で「有効」にはなっていませんね。

チェックボックスをonにして Enable Feature activations を有効化します。また Output Static Image Overlay Schedule Actions の項目を DISABLED から ENABLEDに変更して、[Update channel]します。

Scheduleでオーバーレイの設定

Output Static Image Overlay Schedule Actionsを有効化したら、続いて画像オーバーレイの実際の設定をしていきます。ここはEdit channelするのではなく、Scheduleから設定していくのがポイントですね。(私はてっきりEdit channelの項目にあるものかと思って、設定箇所を探してしまいました。)

Schedule actionsの[Create]ボタンから進みます。

Action nameを適切に設定します。Outputごと、合計3つのSchedule actionsを設定するので末尾に-1を付与しました。Start typeについて今回はImmediateを選択して即時反映するようにします。

Action typeを選択します。一番下のほうに従来までのStatic Image ActivateStatic Image Deactivateの加え、個別のOutputに設定可能なStatic Image Output ActivateStatic Image Ouput Deactivateの2つが追加されていますね!

Schedule actionとしてはStatic Image Output Activateを選択します。続いて現れる設定項目では、個別のOutputが選択可能ですね。emp_1080p30を選択しました。Input locationではS3バケット内に配置したImage overlay用のPNG画像blue.pngを指定します。

Layerなど、いくつか設定項目が現れます。今回はLayerのみ1を設定しました。(はじめはすべてデフォルト状態(0)でやってみたのですが、1つのOverlayのみが反映される、というような挙動だったため、個々のSchedule actionごとにLayerの値を割り振ってみました。)Layerの値以外はデフォルトで[Create]でSchedule actionを作成します。

Schedule actionが作成できました。

続いてもう2つ、Schedule actionを作成していきます。emp_720p30emp_480p30にもそれぞれStatic Image Output Activateを追加します。オーバーレイに使用する画像はそれぞれ別のもの、green.pngred.pngを指定します。またLayerの値はそれぞれ23を設定しています。

3つのOutputごと、画像オーバレイの設定ができました。

実際にライブストリーミングされる映像を視聴して画像オーバレイの確認

MediaLiveリソースの準備ができました。Workflow(もしくはChannel)をStartさせてMediaLiveに映像を打ち上げ、ライブストリーミングを確認してみましょう。

Workflowの詳細画面からMediaPackage HLS endpointのリソースページに移動、MediaPackage endpointのPreview playerのリンクからライブストリーミングを確認してみます。

Playのリンクから遷移するhls.jsのページを少し下にスクロールします。Playerで映像を再生しつつ、[Quality-levels]のボタンをクリックしてみましょう。再生しているABR ladder(ビットレートと解像度の組み合わせ)は1080pのrenditionで、自動的に選択されるよう設定されていることがわかりますね。そしてこの状態では、左上に小さくBLUEの表示があります。これがemp_1080p30に設定したオーバーレイ画像です。

ここで、Currently played level:[1 (720p / 3361kb)]のボタンをクリックしてみましょう。再生されるABR ladderが720pのrenditionものに切り替わります。と同時に、再生される映像の左上の表示はGREENに切り替わりました。emp_720p30に設定したオーバーレイ画像ですね。

続いて[0 (480p / 1750kb)]のボタンをクリックしてみます。再生されるABR ladderが480pのrenditionに切り替わります。またemp_480p30に設定したオーバーレイ画像、REDが左上に表示されました。

ライブストリーミングで再生しているVideo renditionごと、個別の画像オーバーレイが設定できていることが確認できましたね。

まとめ

AWS Elemental MediaLiveで新たに利用可能になった、Outputごとの画像オーバーレイ機能について確認してみました。Schedule actionsでStatic Image Output Activateを設定すること、またその前にEnable Feature activationsOutput Static Image Overlay Schedule Actionsを有効化することを抑えておきましょう。

今回の検証ではABR ladder、つまり1080p720p480pの解像度それぞれで異なるオーバーレイ画像を設定する、という使い方を試してみましたが、たとえば配信用のOutput groupにはWatermarkとしての画像オーバーレイを適用、アーカイブ用のOutput groupは画像オーバーレイを適用しない、というような使い方もできますね。細かな点ではありますが、非常に強力なアップデートだなと思いました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.